<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
</head>
<body bgcolor="white">

<!-- One sentence summary -->
Provides a variety of data structures and algorithms for creating and
manipulating graphs based on a Edif cell structure

<!-- Put more details on the package here -->
<p>
The graphs supported in this package are all based on the Ptolemy
graph package. This Java graph package provides a representation of
both undirected and directed graphs. In addition, it provides a
variety of graph algorithms for analyzing and manipulating graphs.</p>

<p>This package provides the following functionality:
<ul>
 <li> A variety of graph data structures based on the EdifCell object </li>
 <li> A number of algorithms for analyzing such graphs</li>
 <li> The capability of generating .dot files for visualizing these graphs</li>
</ul>
</p>

<p>The following graphs will be supported in this package:
<ul>
<li> <b>DepthFirstSearchGraph</b> This is a DirectedGraph object representing a
    forest of spanning trees when performing an efficient depth-first search.
<li> <b>EdifPortConnectivityGraph</b> Represents connectivity between top-level ports
    of an EdifCell. This graph is created directly from an EdifCell without any
    other graph structures. The Nodes of this graph have as weights Collections of 
    EdifSingleBitPort objects. The edges represent connectivity between top-level
    input and output ports.
	<p>TO DO: This class is messy and needs to be cleaned up. Get rid of PortRefCollection
    objects. Create the connectivity graph from some form of a non-hierarchical 
    topology graph.</p>
</ul>
</p>

<h2>Notes</h2>
<p><i>This file, especially the portion below, needs significant revision and updating!</i></p>
<ul>
 <li> DGHelper: Need to remove dependencies and move to unused gplk directory</li>
 <li> MinLoopCutSet: Move to gplk</li>
 <li> FeedbackTMR: Move to gplk </li>
 <li> EdifCellFlattenGraph:
  <ul>
   <li>Nodes = EdifSingleBitPort objects (port), EdifCellInstance, EdifNet
   <li>Edges = between Nodes of type EdifSingleBitPort and Nodes of type EdifNet
   <li>To get rid of:
      <ul>
         <li> Create a new non-hierarchical EdifGraph</li>
         <li> Create a new byucc.edif.tools.tmr.FlattenTMR
	    <ul>
             <li> Performs flatten without using graphs
             <li> Creates a EdifGraph object from flattened cell
             <li> Does all of the cutting in this graph
             <li> Calls Xilinx TMR
	    </ul>
	 </li>
         <li> Get rid of other related classes</li>
      </ul>
   </li>
  </ul>
 </li>
 <li> EdifCellFlattenGraph
 <ul>
  <li> FlattenHyperEdge</li>
  <li> GraphFlattenEdifCell</li>
  <li> EdifCellInstanceNodeWeight</li>
 </ul>
 </li>
 <li> EdifDirectedGraphToDotty
 <ul>
  <li> EdifCellNodeWeight</li>
  <li> GraphEdifCell</li>
  <li> EdifGraphNodeWeight</li>
  <li> EdifNetNodeWeight</li>
  <li> EdifSingleBitPortNodeWeight</li>
  <li> PortRefCollection</li>
 </ul>
 </li>
 <li> EdifCellTopologyGraph
 <ul>
     <li> Nodes: </li>
     <li> Edges:</li>

     <li> (need to clean up FeedbackTMR and XilinxTMR with this graph)</li>
 </ul>
 </li>
 <li> GraphEdifCell</li>
</ul>

<!-- Put @see and @since tags down here. -->

</body>
</html>
